package com.homedo.odin.solution.dao;

import com.homedo.core.common.base.dao.BaseDao;
import com.homedo.odin.solution.model.entity.ColumnSku;
import java.util.List;
import java.util.Set;
import org.apache.ibatis.annotations.Param;

/**
 * <p> 栏目关联sku关系表 Mapper 接口 </p>
 *
 * @author HarveyDing
 * @since 2018-03-08
 */
public interface ColumnSkuMapper extends BaseDao<ColumnSku> {

    ColumnSku getColumnSku(@Param("columnId") Long columnId, @Param("skuId") String skuId);

    void updateColumnSkuStatus(@Param("id") Integer id, @Param("fromStatus") int fromStatus,
            @Param("toStatus") int toStatus, @Param("createUserName") String createUserName);

    void updateColumnSkuStatusByColumnIdAndSkuId(@Param("columnId") Long columnId, @Param("skuId") String skuId,
            @Param("toDelete") int toDelete, @Param("delStatus") int delStatus, @Param("operator") String operator);

    List<ColumnSku> getSkuListByColumnId(@Param("columnId") Long columnId, @Param("delStatus") int delStatus);

    List<ColumnSku> listColumnSku(@Param("columnId") Long columnId, @Param("isDel") int isDel);

    List<ColumnSku> listColumnSkuForPc(@Param("columnId") Long columnId, @Param("isDel") int isDel);

    ColumnSku getColumnSkuByColumnIdAndSkuIdAndIsDel(@Param("columnId") Long columnId, @Param("skuId") String skuId,
            @Param("dbValue") Integer dbValue);

    List<ColumnSku> selectBySkuIdsAndColumnId(@Param("skuIds") Set<String> skuIds, @Param("columnId") Long columnId);

    void updateIsDelBySkuIdsAndColumnId(@Param("isDel") Integer isDel, @Param("skuIdList") Set<String> skuIdList,
            @Param("columnId") Long columnId);

    void insertBatch(@Param("insertList") List<ColumnSku> insertList);
}